#pragma once
#include <string>

using std::string;

enum ItemSize
{
   ITEM_VIRTUAL = 0, //takes up no space in your inventory
   ITEM_SMALL, //takes up one inventory slot
   ITEM_NORMAL, // takes up two inventory slots
   ITEM_LARGE = 4, // takes up four inventory slots
   ITEM_MAX
};

// Base Item class, derive from this to make more specific items
class Item
{
   // I don't like dealing with char *s so let's make it a string and everybody is happy \o/
   string m_sItemName;

   ItemSize m_eSize;

   unsigned int m_iUniqueID;
public:
   Item(void);
   Item(const char * sName);
   ~Item(void);

   const char * GetName(){return m_sItemName.c_str();}
   void SetName(string sName){m_sItemName = sName;}

   void SetItemSize(ItemSize eSize){if (eSize < ITEM_MAX)m_eSize = eSize;}
   ItemSize GetItemSize(){return m_eSize;}

   unsigned int GetUniqueID(){return m_iUniqueID;}
};